An image projection apparatus referred to as a “projector” has a display means, for example, an LCD (liquid crystal display). The display means is made to display the image and project the image onto a projection surface such as an external screen. At this time, if a projection angle of the image from the liquid crystal projector with respect to the projection surface is inclined, the image which should inherently be rectangular becomes distorted in a trapezoidal state on the screen.
For this reason, a liquid crystal projector provided with a so-called keystone correction function for reversely distorting the image on the liquid crystal panel to correct the trapezoidal distortion of the image on the screen has been known.
Usually, a projector is provided with a pixel number conversion function in accordance with the type or resolution of various input images or for realizing a PinP (Picture in Picture) function. As the function for pixel number conversion of a projector, there are a function for generating addresses after conversion and an interpolation operation function for generating one pixel data from among a plurality of pixel data selected from an input image by an interpolation operation for every generated address.
FIG. 28A-1, FIG. 28A-2, FIG. 28B-1, and FIG. 28B-2 show an original image, an image after conversion, and images of the address conversion using trapezoidal distortion correction in a horizontal direction as an example.
In the image conversion, generally, as shown in FIG. 28B-1, addresses (pixel position data) of an image having the same distortion as the distortion occurring on the projection surface are generated in accordance with the projection position. Below, addresses of pixels at which such data is to be generated by interpolation will be referred to as “interpolation addresses”, and the new data will be referred to as “interpolated pixel data”.
In order to generate interpolated pixel data corresponding to the interpolation addresses by the interpolation operation, for example, for each address, a plurality of peripheral original pixel data around the corresponding location of the original image are selected by a predetermined rule and added weighted by a predetermined rule. The data is generated repeatedly to generate all interpolated pixel data, then, as shown in FIG. 28B-2, the group of the generated interpolated pixel data is converted in addresses all together.
In trapezoidal distortion correction in the horizontal direction, the interpolation addresses are not given in parallel with respect to the scanning line direction as in FIG. 28B-1, but are given while being inclined to a certain slant for every line. The intervals between the centers of the interpolation pixels serving as sampling points at this time are not constant and change nonlinearly. Further, the same can be said for lines as well. The intervals between lines are also not constant. When giving interpolation addresses obliquely in this way, generating interpolated pixel data, and allocating them to the interpolation addresses, the result is that an image intentionally distorted reverse to the image on the projection surface as indicated by the image in FIG. 28A-2 is obtained. If projecting this intentionally distorted image onto the projection surface, a rectangular image having distortion cancelled out is obtained.
While correction of distortion in the horizontal direction was explained above, distortion in the vertical direction can also be corrected by the same method. At the time of correction of distortion in the vertical direction, a group of addresses representing the trapezoidal distorted image flaring out upward or downward is generated, and an interpolation operation is carried out at each of the address points.
On the other hand, in the case of projection from a slant having any angles horizontally and vertically with respect to the projection surface, the distortions in the horizontal direction and the vertical direction are combined and the image becomes complicatedly distorted, so generation of a group of addresses representing the distortion is complicated. Note if it were only possible to efficiently generate the group of addresses, the interpolation operation itself could be carried out in the same way as the other case mentioned above.
When including a distortion component in the horizontal direction as mentioned above, as shown in FIG. 28B-1, a line connecting the interpolation addresses will obliquely cross a plurality of horizontal lines (a plurality of horizontal scanning lines) of the original image. For this reason, in the interpolation of a pixel, it is necessary to use the plurality of pixel data of the original image existing around the interpolation address point horizontally and vertically, so a two-dimensional interpolation operation becomes necessary. For this operation, a two-dimensional interpolation filter can be used. Note, generally, use is made of two one-dimensional interpolation filters independent vertically and horizontally for reasons of operation scale, restriction of the bit size of the memory, degree of freedom of setup, etc. For example, by passing the original image data through the vertical one-dimensional interpolation filter first and then further passing the interpolated data generated by this through the horizontal one-dimensional interpolation filter, new pixel data is generated.
FIG. 29 shows an example of a one-dimensional interpolation operation for generating one pixel data by a convolution operation by a four-tap filter.
An interpolation coefficient is determined by the distance between the interpolation position and the pixel data, therefore an interpolation coefficient (filter coefficient) with respect to each phase can be represented by a function h(x) of the distance in an x-axis direction at this time. Accordingly, pixel data g of the illustrated interpolation point Q at this time can be represented by the convolution operation shown in equation (1) using original pixel data A, B, C, and D.q=Axh(−6/5)+Bxh(−1/5)+Cxh(4/5)+Dxh(9/5)  (1)
In actuality, a variety of values can be considered for the interpolation function h(x). Also, the image quality can be changed by changing the characteristics of the interpolation filter.
FIG. 30 shows the configuration of a filter unit particularly performing a one-dimensional filter operation independently two times in an image conversion block.
A filter unit 200 has a vertical interpolation filter (VIF) 201, a horizontal interpolation filter (HIF) 202, a selector (SEL) 203, and a storing means 204. The original pixel data and a set of filter coefficients are input to the vertical interpolation filter 201 first. By passing the original pixel data through the vertical interpolation filter 201, the filter operation shown in equation (1) is executed and interpolated data generated by using for example four vertical direction pixel data is output. This is repeated at for example four columns of pixels around the interpolation point, whereby four vertical direction interpolated data Va, Vb, Vc, and Vd are sequentially output from the vertical interpolation filter 201 to the selector 203. The selector 203 sequentially distributes the four vertical direction interpolated data Va, Vb, Vc, and Vd to predetermined storage portions (or predetermined addresses) in the storing means 204 while switching the output. When the four interpolated data Va, Vb, Vc, and Vd are assembled, the storing means 204 outputs them to the horizontal interpolation filter 202. The horizontal interpolation filter 202 executes a one-dimensional (horizontal direction) filter operation in accordance with the input set of filter coefficients and outputs the result as new pixel data.
In this way, in order to generate one new pixel data, horizontal and vertical (N×M) number of data of the original image, i.e., 4×4=16 data in the above example, are used. In order to generate one new pixel data, the interpolation operation by the N-tap vertical interpolation filter is carried out M number of times (N=M=4 in the above example). For the M number of one-dimensional interpolated data V1, V2, . . . , VM generated by this, an interpolation operation by the M-tap horizontal interpolation filter is executed only one time.
In the interpolation operation processing of a pixel carried out in the image conversion unit of the image projection apparatus mentioned above, the number of the original pixel data extracted is set to N in the vertical direction and M in the horizontal direction (N and M: natural numbers of 2 or more). In general, the higher the order of the interpolation function h(x) of equation (1) used for realizing high precision interpolation, the larger the numbers N and M of this original pixel data extracted and the larger the number of taps of the filter too. Further, in order to perform the distortion correction in the horizontal direction with a high precision, a certain number of original pixel data becomes necessary in not only the horizontal direction, but also the vertical direction. In this case, in order to raise the degree of freedom of placement of the projector, it is important that large distortion of an image can be corrected. From this viewpoint, the numbers N and M of the original pixel data extracted are set large in advance.
In the filter unit 200 having the configuration shown in FIG. 30, when new pixel data is generated, if the interpolated data Va, Vb, Vc, and Vd output from the vertical interpolation filter 201 are input to the storing means 204, the interpolated data Va=, Vb=, Vc=, and Vd= used for the generation of the pixel data before that are rewritten. With the filter unit 200 of this configuration, M (four in the present example) number of interpolated data are generated for every generation of new image data.
In the filter unit 200 illustrated in FIG. 30, however, some of the interpolated data are often the same at the time of generation of continuous image data. In this case, wasteful processing for generating data the same as already generated and stored data and rewriting the stored content in the storing means 204 by this is carried out. In order to improve the precision of the interpolation processing or the degree of freedom of the arrangement of the projector, when the numbers N and M of the original pixel data extracted are large, the same operation is often repeated in the vertical interpolation filter 201. Further, the frequency of repetition of operations of the same content in this vertical interpolation increases as the vertical direction distortion component becomes dominant in comparison with the horizontal direction distortion component. Further, even when there are few wasted repeated operations, the generation of addresses of the oblique distortion correction was complex, so the processing time sometimes increased.
In the image projection apparatus mentioned above, wasted repetition of the same operations frequently occurred due to the above reason or the improvement of the overall operation speed was unnecessarily limited due to the complicated address computations. For this reason, various restrictions arose, for example, the clock frequency etc. of the portions communicating with the memory had to be raised or the bit size of the memory had to be increased.